1. Field of the Invention
The present invention generally relates to data formatting in computer systems and, more particularly, relates to an emulating agent for uniform formatting of data.
2. Background
In a computer systems having a single central processing unit, numbers are transferred using a uniform number format. The format typically allows the system to distinguish among the sign, exponent, and a significand of a number. In a properly designed system, there would be no reason to have incompatible formats in a single system.
In contrast, in a computer system having multiple processors with different architectures, there may arise incompatibilities of formats among number values produced by separate processors. The incompatibilities typically involve numbers that have signs, exponents, or significands represented in a format corresponding to a particular processor that are a different length from those of another processor in the same system. Each processor will typically have registers that are designed to accommodate its own format. As a result, registers of one processor architecture may not be able to accommodate numbers produced by another processor having a different format. This incompatibility will cause errors in computations when numbers are transferred to a processor having a format that is incompatible with the processor sending the number.
One solution is to use a different register for each number format. The Motorola 88000 series of processors was made compatible to the Intel single, double and double-extended precision formats. In this application, a different register was used for each size of precision. Thus, no numbers of incompatible formats went to the same register.
Another solution to this problem was accomplished by Digital Equipment Corporation (DEC) to employ both the VAX format and the IEEE format in a single size register file. The operands for numbers were encoded in the same size 64-bit register file. Both encodings, however, were the same size and both single and double precision results were stored in the same register. Both the VAX and the IEEE format had 32-bit registers for storing and retrieving single precision numbers as well as 64-bit registers for storing and retrieving double precision numbers. Formats of varying and incompatible lengths did not exist in that application and, thus, no incompatible formats occurred. Thus, the formats were essentially compatible in that a varying size register was not required to accommodate the different formats.
Yet another example was incorporated in the Pentium.TM. microprocessor produced by Intel Corporation of Santa Clara, Calif., that had a 17-bit exponent range internal to the microcode. This allowed for varying-sized exponents of numbers that were used in the microcode. This application with the extended exponent range, however, was not accessible using compilers or other high level languages, such as assembly language programmers and was, thus, not accessible to a computer user.
Therefore, it would be of great use in the microprocessor industry if a device and method were available to emulate processors of different architectures so that numbers of incompatible formats could be transferred, exchanged and computed upon among processors having different architectures. Also, it would be most useful if the ability to transfer, exchange and compute numbers of incompatible formats among processors of different architectures were made available to the user so that the advantage of using incompatible numbers were realized by users of compilers, high level languages and assembly language. As will be seen, the present invention accomplishes this in a simple and elegant manner.